package org.lboot.flow.module.event.params;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 流程自定义事件
 */

@Data
@ApiModel(value = "自定义事件新建参数")
public class FlowCustomEventCreateParams {
    @NotBlank(message = "事件ID不可为空")
    @ApiModelProperty(value = "事件ID")
    String eventId;

    @NotBlank(message = "事件范围不可为空")
    @ApiModelProperty(value = "事件范围")
    String eventRange;

    @NotNull(message = "异步标识不可为空")
    @ApiModelProperty(value = "是否异步")
    Boolean isAsync;


    @NotBlank(message = "事件名称不可为空")
    @ApiModelProperty(value = "事件名称")
    String eventName;

    // * 为全部流程定义
//    @NotBlank(message = "关联流程定义ID不可为空")
//    @ApiModelProperty(value = "关联流程定义ID")
//    String bindFlowId;

    // * 为全部流程节点
//    @NotBlank(message = "关联流程节点ID不可为空")
//    @ApiModelProperty(value = "关联流程节点ID")
//    String bindNodeId;

    @Min(value = 0,message = "事件优先级必须大于0")
    @ApiModelProperty(value = "事件优先级")
    Integer priority;

    // * 为无条件执行
    @ApiModelProperty(value = "表达式")
    String expression;

    // 0 为关闭 1 为开启
    @Min(value = 0,message = "事件开启状态范围错误")
    @Max(value = 1,message = "事件开启状态范围错误")
    @ApiModelProperty(value = "事件开启状态")
    Integer status;

    // 执行的JS脚本 --> 操作表单数据 空为不操作
    @ApiModelProperty(value = "执行JS脚本")
    String runScript;
}
